1. Field of the Invention
The present invention relates to a data encoding apparatus, data decoding apparatus and data encoding/decoding system for performing data encoding and decoding processes.
2. Description of the Related Art
It has been conventionally known that, when electronic mail attached with binary data such as images, word-processor documents and the like is transmitted, the binary data needs to be substituted with a character string. Examples of methods of substituting the binary data into character strings include Base 64, Quoted-Printable and the like, defined in RFC2045.
Generally, in companies and internet providers, a virus scan of received and transmitted e-mails is implemented at the mail servers or gate ways, and this virus scan is performed for the files (binary data) attached to e-mails. Since the images in a file, and/or documents, attached to e-mail as described above have been encoded using Base 64 or Quoted-Printable, it is necessary to implement a decoding process.
Conventionally, encoding and decoding processes using Base 64, Quoted-Printable or the like are implemented by software. However, use of software has the disadvantage of low processing speed. Further, because any process based on software has no means of improving the processing speed, though the processing speed of a process based on hardware can be improved by using a parallel process, use of software has faced difficulties in improving processing speed.
In recent years, there has been an increasing demand for high-speed encoding/decoding processes, as the number of virus infected emails increase.
Incidentally, it is disclosed in, for example Japanese Patent Application Laid-open 116534/1996 that image data is divided into a multiple number of image data streams so that these image data streams are encoded in parallel to thereby achieve high speed encoding of image data.
This publication of Japanese Patent Application Laid-open 116534/1996 discloses a technique for implementing parallel encoding/decoding using hardware. However, it is not simple to perform parallel encoding/decoding based on Base 64, Quoted-Printable etc., because invalid byte data such as control codes need to be inserted and removed so that the amount of data increases or decreases according to the encoding/decoding processes.